package tech.aistar.corejava.day08.interfaces;

/**
 * @author success
 * @version 1.0
 * @description:本类用来演示:接口的定义
 * @date 2019/7/24 0024
 */
public interface IUserDao {

    //接口中也是可以定义抽象方法的

    //并且在JDK8.0之前,以下这句话是对的?
    //接口中的方法都是抽象的方法! - 都是公开的抽象的

    //public abstract void save();

    //可以简化成,等同于上面的public abstract void save();
    void save();

   //JDK8.0[包含]之后可以通过default关键字来定义普通方法 - 不推荐使用
    default void test(){
        System.out.println("Test...");
    }

    //接口中的属性都是公开的静态的常量属性
    //现在也是很少在接口中去定义公开的静态常量的属性
    //原因是:jdk5.0以后推荐使用enum枚举类型来管理应用程序中所有的常量属性[enum类型]
    //public static final int YEAR = 1;

    //简化
    //public int YEAR = 1;

    //简化成
    int YEAR = 1;

    //最后总结 - 接口中最常见的出现的内容:公开的抽象的方法! - CRUD操作.

    //接口中能不能定义一个普通属性 - 不能
   // public int car = 1;

    //接口中不允许定义普通方法 - 除非使用default关键字
    //public void test02();

    //接口中是不允许存在构造的
}
